/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.date.DateUtil
 *  cn.hutool.core.util.ObjectUtil
 *  cn.hutool.core.util.StrUtil
 *  com.alibaba.fastjson.JSON
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.CheckBox
 *  javafx.scene.control.ChoiceBox
 *  javafx.scene.control.DatePicker
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.Pane
 *  javafx.scene.layout.VBox
 *  javafx.stage.Modality
 *  javafx.util.Callback
 *  javafx.util.StringConverter
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 *  org.springframework.beans.factory.annotation.Autowired
 *  org.springframework.util.CollectionUtils
 */
package com.gys.controller.incomeStatement;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.gys.GysApplication;
import com.gys.common.business.IncomeStatementUtil;
import com.gys.common.business.SaleScheduleSettingUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.enums.ProForm;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.CommonUtil;
import com.gys.controller.BaseController;
import com.gys.controller.incomeStatement.AddIncomeStatementController;
import com.gys.controller.index.IndexController;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.example.GetUserOutData;
import com.gys.data.incomeStatement.IncomeStatementDetailOutData;
import com.gys.data.incomeStatement.IncomeStatementInData;
import com.gys.data.incomeStatement.IncomeStatementOutData;
import com.gys.data.medCheck.GsmchStatus;
import com.gys.data.medCheck.GsmchType;
import com.gys.data.saleScheduleSetting.GetSaleScheduleInData;
import com.gys.view.incomeStatement.AddView;
import de.felixroske.jfxsupport.FXMLController;
import java.net.URL;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.util.Callback;
import javafx.util.StringConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

@FXMLController
public class IncomeStatementController
extends BaseController
implements Initializable {
    private static final Logger log = LoggerFactory.getLogger(IncomeStatementController.class);
    @FXML
    private VBox vBox;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishRemark;
    @FXML
    private Button queryBtn;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishTableType;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdRetailPrice;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdDosageForm;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishTotalQty;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdBatch;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdFormat;
    @FXML
    private Button addBtn;
    @FXML
    private Button sureBtn;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdApprovalNum;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishVoucherId;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishExamineDate;
    @FXML
    private ChoiceBox<GsmchType> isType;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishStatus;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishDate;
    @FXML
    private TextField voucherId;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdBatchNo;
    @FXML
    private Pane modelPane;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishTotalAmt;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdProName;
    @FXML
    private Pane queryPane;
    @FXML
    private DatePicker createDate;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdRealQty;
    @FXML
    private TextField batchNo;
    @FXML
    private TableView<IncomeStatementOutData> sortInfo;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdOrigin;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishIsType;
    @FXML
    private TableColumn<IncomeStatementOutData, String> gsishExamineEmp;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdValidUntil;
    @FXML
    private TableColumn<IncomeStatementOutData, String> index;
    @FXML
    private TableView<IncomeStatementDetailOutData> detailInfo;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdProId;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> indexDetail;
    @FXML
    private Button auditBtn;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdStockStatus;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdFactory;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdUnit;
    @FXML
    private TextField proId;
    @FXML
    private ChoiceBox<GetUserOutData> examineEmp;
    @FXML
    private TableColumn<IncomeStatementOutData, CheckBox> checkBox;
    @FXML
    private DatePicker finishDate;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdIsCause;
    @FXML
    private TableColumn<IncomeStatementDetailOutData, String> gsisdQty;
    @FXML
    private ChoiceBox<GsmchStatus> status;
    @FXML
    private ScrollPane scrollPane;
    private Double layoutYSou = null;
    public String isVoucherId;
    private ObservableList<IncomeStatementOutData> incomeList = FXCollections.observableArrayList(new ArrayList());
    private ObservableList<IncomeStatementDetailOutData> incomeDetailList = FXCollections.observableArrayList(new ArrayList());
    List<GetUserOutData> outDataList = new ArrayList<GetUserOutData>();
    @Autowired
    private AddIncomeStatementController addIncomeStatementController;
    @Autowired
    private IndexController indexController;

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.sortInfo.setPrefWidth(this.getContentWidth());
        this.detailInfo.setPrefWidth(this.getContentWidth());
        StringConverter converter = CommonUtil.dataPickerFormat("yyyyMMdd");
        this.createDate.setConverter(converter);
        this.finishDate.setConverter(converter);
        this.outDataList.clear();
        GetSaleScheduleInData inData = new GetSaleScheduleInData();
        inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        inData.setGsegBrId(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson httpJson = SaleScheduleSettingUtil.queryUser(CommonUtil.convertToMap(inData));
        if (!httpJson.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
            return;
        }
        this.outDataList = JSON.parseArray((String)httpJson.getMsg(), GetUserOutData.class);
        this.examineEmp.getItems().addAll(this.outDataList);
        this.examineEmp.converterProperty().set(new StringConverter<GetUserOutData>(){

            public String toString(GetUserOutData object) {
                return object.getLoginName();
            }

            public GetUserOutData fromString(String string) {
                return null;
            }
        });
        this.status.getItems().addAll(this.getAllStatus());
        this.status.converterProperty().set(new StringConverter<GsmchStatus>(){

            public String toString(GsmchStatus object) {
                return object.getName();
            }

            public GsmchStatus fromString(String string) {
                return null;
            }
        });
        this.isType.getItems().addAll(this.getAllType());
        this.isType.converterProperty().set(new StringConverter<GsmchType>(){

            public String toString(GsmchType object) {
                return object.getName();
            }

            public GsmchType fromString(String string) {
                return null;
            }
        });
        this.init();
    }

    @Override
    public void init() {
        if (ObjectUtil.isEmpty(this.scrollPane)) {
            return;
        }
        this.indexController.scrollContentPane.setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

            public void handle(KeyEvent e) {
                if (e.getCode() == KeyCode.ENTER) {
                    IncomeStatementController.this.queryAction();
                }
                if (e.getCode() == KeyCode.F1) {
                    IncomeStatementController.this.addAction();
                }
                if (e.getCode() == KeyCode.F8) {
                    IncomeStatementController.this.auditAction();
                }
                e.consume();
            }
        });
    }

    @FXML
    void addAction() {
        this.addIncomeStatementController.init();
        GysApplication.showView(AddView.class, (Modality)Modality.APPLICATION_MODAL);
    }

    @FXML
    void sureAction() {
    }

    @FXML
    void queryAction() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        if (StrUtil.isBlank((CharSequence)this.voucherId.getText()) && ObjectUtil.isEmpty(this.isType.getValue()) && ObjectUtil.isEmpty(this.status.getValue()) && ObjectUtil.isEmpty(this.createDate.getValue()) && StrUtil.isBlank((CharSequence)this.proId.getText()) && StrUtil.isBlank((CharSequence)this.batchNo.getText()) && ObjectUtil.isEmpty(this.examineEmp.getValue()) && ObjectUtil.isEmpty(this.finishDate.getValue())) {
            alert.setContentText("\u5fc5\u987b\u81f3\u5c11\u586b\u5199\u4e00\u9879\u5185\u5bb9\u8fdb\u884c\u67e5\u8be2\uff01");
            alert.showAndWait();
            return;
        }
        this.incomeDetailList.clear();
        this.bingTableCell();
        this.initTable();
    }

    @FXML
    private void reset() {
        this.voucherId.clear();
        this.isType.setValue(null);
        this.status.setValue(null);
        this.createDate.setValue(null);
        this.proId.clear();
        this.batchNo.clear();
        this.examineEmp.setValue(null);
        this.finishDate.setValue(null);
    }

    @FXML
    void auditAction() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        List<Integer> indexList = this.getSelectIndex();
        if (ObjectUtil.isEmpty(indexList)) {
            alert.setContentText("\u8bf7\u9009\u62e9\u8bb0\u5f55");
            alert.showAndWait();
            return;
        }
        String gsishVoucherId = ((IncomeStatementOutData)this.incomeList.get(indexList.get(0) - 1)).getGsishVoucherId();
        IncomeStatementOutData inData = new IncomeStatementOutData();
        inData.setGsishExamineEmp(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        inData.setGsishVoucherId(gsishVoucherId);
        HttpJson rsp = IncomeStatementUtil.approve(inData);
        if (rsp.isSuccess()) {
            ((IncomeStatementOutData)this.incomeList.get(indexList.get(0) - 1)).setGsishStatus("\u672a\u5ba1\u6838");
            this.sortInfo.refresh();
            alert.setContentText("\u63d0\u4ea4\u6210\u529f");
            alert.showAndWait();
        } else {
            alert.setContentText(rsp.getMsg());
            alert.showAndWait();
        }
    }

    private List<GsmchStatus> getAllStatus() {
        ArrayList<GsmchStatus> list = new ArrayList<GsmchStatus>();
        list.add(new GsmchStatus("0", "\u672a\u5ba1\u6838"));
        list.add(new GsmchStatus("1", "\u5df2\u5ba1\u6838"));
        list.add(new GsmchStatus("2", "\u5df2\u9000\u56de"));
        return list;
    }

    private List<GsmchType> getAllType() {
        ArrayList<GsmchType> list = new ArrayList<GsmchType>();
        list.add(new GsmchType("1", "\u76d8\u70b9\u5dee\u5f02"));
        list.add(new GsmchType("2", "\u6279\u53f7\u8c03\u6574"));
        list.add(new GsmchType("3", "\u4f4e\u503c\u6613\u8017\u54c1\u9886\u7528"));
        list.add(new GsmchType("4", "\u95e8\u5e97\u9886\u7528"));
        return list;
    }

    public TableView<IncomeStatementOutData> initTable() {
        IncomeStatementInData inData = new IncomeStatementInData();
        inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        inData.setGsishBrId(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        if (ObjectUtil.isNotEmpty(this.voucherId.getText().trim())) {
            inData.setGsishVoucherId(this.voucherId.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.isType.getValue())) {
            inData.setGsishIsType(((GsmchType)this.isType.getValue()).getCode());
        }
        if (ObjectUtil.isNotEmpty(this.status.getValue())) {
            inData.setGsishStatus(((GsmchStatus)this.status.getValue()).getCode());
        }
        if (ObjectUtil.isNotEmpty(this.createDate.getValue())) {
            inData.setGsishDate(DateUtil.format((Date)DateUtil.parse((String)((LocalDate)this.createDate.getValue()).toString()), (String)"yyyyMMdd"));
        }
        if (ObjectUtil.isNotEmpty(this.proId.getText().trim())) {
            inData.setGsisdProId(this.proId.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.batchNo.getText().trim())) {
            inData.setGsisdBatchNo(this.batchNo.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.examineEmp.getValue())) {
            inData.setGsishExamineEmp(((GetUserOutData)this.examineEmp.getValue()).getUserId());
        }
        if (ObjectUtil.isNotEmpty(this.finishDate.getValue())) {
            inData.setGsishFinishDate(DateUtil.format((Date)DateUtil.parse((String)((LocalDate)this.finishDate.getValue()).toString()), (String)"yyyyMMdd"));
        }
        List<IncomeStatementOutData> dataList = null;
        HttpJson rsp = IncomeStatementUtil.incomeStatementList(inData);
        if (rsp.isSuccess()) {
            dataList = JSON.parseArray((String)rsp.getMsg(), IncomeStatementOutData.class);
            for (IncomeStatementOutData outData : dataList) {
                if ("1".equals(outData.getGsishIsType())) {
                    outData.setGsishIsType("\u76d8\u70b9\u5dee\u5f02");
                }
                if ("2".equals(outData.getGsishIsType())) {
                    outData.setGsishIsType("\u6279\u53f7\u8c03\u6574");
                }
                if ("3".equals(outData.getGsishIsType())) {
                    outData.setGsishIsType("\u4f4e\u503c\u6613\u8017\u54c1\u9886\u7528");
                }
                if ("4".equals(outData.getGsishIsType())) {
                    outData.setGsishIsType("\u95e8\u5e97\u9886\u7528");
                }
                if ("1".equals(outData.getGsishStatus())) {
                    outData.setGsishStatus("\u5df2\u5ba1\u6838");
                }
                if ("0".equals(outData.getGsishStatus())) {
                    outData.setGsishStatus("\u672a\u5ba1\u6838");
                }
                if (!"2".equals(outData.getGsishStatus())) continue;
                outData.setGsishStatus("\u5df2\u9000\u56de");
            }
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
            return new TableView();
        }
        this.incomeList.clear();
        this.incomeList = FXCollections.observableArrayList((Collection)dataList);
        this.bingTableCell();
        this.sortInfo.setItems(this.incomeList);
        return this.sortInfo;
    }

    private void bingTableCell() {
        this.index.setCellValueFactory((Callback)new PropertyValueFactory(this.index.getId()));
        this.checkBox.setCellValueFactory(cellData -> ((IncomeStatementOutData)cellData.getValue()).getCheckBox().getCustomCheckBox());
        this.checkBox.setCellFactory(col -> {
            TableCell<IncomeStatementOutData, CheckBox> cell = new TableCell<IncomeStatementOutData, CheckBox>(){

                protected void updateItem(CheckBox item, boolean empty) {
                    super.updateItem(item, empty);
                    this.setGraphic((Node)item);
                    if (item != null) {
                        item.setOnMouseClicked(col -> {
                            if (CollectionUtils.isEmpty((Collection)IncomeStatementController.this.incomeList)) {
                                return;
                            }
                            int index = this.getIndex();
                            for (int i = 0; i < IncomeStatementController.this.incomeList.size(); ++i) {
                                if (i == index) continue;
                                ((IncomeStatementOutData)IncomeStatementController.this.incomeList.get(i)).getCheckBox().setSelectStatus(false);
                            }
                            IncomeStatementController.this.incomeDetailList.clear();
                            IncomeStatementController.this.showDetail(index);
                        });
                    }
                }
            };
            return cell;
        });
        this.gsishVoucherId.setCellValueFactory((Callback)new PropertyValueFactory("gsishVoucherId"));
        this.gsishDate.setCellValueFactory((Callback)new PropertyValueFactory("gsishDate"));
        this.gsishExamineDate.setCellValueFactory((Callback)new PropertyValueFactory("gsishExamineDate"));
        this.gsishIsType.setCellValueFactory((Callback)new PropertyValueFactory("gsishIsType"));
        this.gsishTableType.setCellValueFactory((Callback)new PropertyValueFactory("gsishTableType"));
        this.gsishTotalAmt.setCellValueFactory((Callback)new PropertyValueFactory("gsishTotalAmt"));
        this.gsishTotalQty.setCellValueFactory((Callback)new PropertyValueFactory("gsishTotalQty"));
        this.gsishStatus.setCellValueFactory((Callback)new PropertyValueFactory("gsishStatus"));
        this.gsishExamineEmp.setCellValueFactory((Callback)new PropertyValueFactory("gsishExamineEmp"));
        this.gsishRemark.setCellValueFactory((Callback)new PropertyValueFactory("gsishRemark"));
        this.sortInfo.getSelectionModel().selectedItemProperty().addListener((ChangeListener)new ChangeListener<IncomeStatementOutData>(){

            public void changed(ObservableValue<? extends IncomeStatementOutData> observable, IncomeStatementOutData oldValue, IncomeStatementOutData newValue) {
                if (CollectionUtils.isEmpty((Collection)IncomeStatementController.this.incomeList)) {
                    return;
                }
                for (int i = 0; i < IncomeStatementController.this.incomeList.size(); ++i) {
                    if (i == newValue.getIndex() - 1) {
                        ((IncomeStatementOutData)IncomeStatementController.this.incomeList.get(i)).getCheckBox().setSelectStatus(true);
                        continue;
                    }
                    ((IncomeStatementOutData)IncomeStatementController.this.incomeList.get(i)).getCheckBox().setSelectStatus(false);
                }
                IncomeStatementController.this.showDetail(newValue.getIndex() - 1);
            }
        });
    }

    private void showDetail(int index) {
        if (((IncomeStatementOutData)this.incomeList.get(index)).getCheckBox().isSelected().booleanValue()) {
            IncomeStatementOutData inData = new IncomeStatementOutData();
            inData.setClientId(((IncomeStatementOutData)this.incomeList.get(index)).getClientId());
            inData.setGsishBrId(((IncomeStatementOutData)this.incomeList.get(index)).getGsishBrId());
            inData.setGsishVoucherId(((IncomeStatementOutData)this.incomeList.get(index)).getGsishVoucherId());
            List<IncomeStatementDetailOutData> dataList = null;
            HttpJson rsp = IncomeStatementUtil.incomeStatementDetailList(inData);
            if (rsp.isSuccess()) {
                dataList = JSON.parseArray((String)rsp.getMsg(), IncomeStatementDetailOutData.class);
                for (IncomeStatementDetailOutData outData : dataList) {
                    if ("1".equals(outData.getGsisdStockStatus())) {
                        outData.setGsisdStockStatus("\u5df2\u5b8c\u6210");
                    } else {
                        outData.setGsisdStockStatus("\u5f85\u5904\u7406");
                    }
                    outData.setGsisdDosageForm(ProForm.getName(outData.getGsisdDosageForm()));
                }
            } else {
                Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
                alert.showAndWait();
            }
            this.initDetailTableView(dataList);
        }
    }

    private TableView<IncomeStatementDetailOutData> initDetailTableView(List<IncomeStatementDetailOutData> dataList) {
        this.incomeDetailList.clear();
        this.incomeDetailList = FXCollections.observableArrayList(dataList);
        this.bingDetailTableCell();
        this.detailInfo.setItems(this.incomeDetailList);
        return this.detailInfo;
    }

    private void bingDetailTableCell() {
        this.indexDetail.setCellValueFactory((Callback)new PropertyValueFactory(this.indexDetail.getId()));
        this.gsisdProId.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdProId.getId()));
        this.gsisdProName.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdProName.getId()));
        this.gsisdRetailPrice.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdRetailPrice.getId()));
        this.gsisdBatchNo.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdBatchNo.getId()));
        this.gsisdBatch.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdBatch.getId()));
        this.gsisdValidUntil.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdValidUntil.getId()));
        this.gsisdQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdQty.getId()));
        this.gsisdIsCause.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdIsCause.getId()));
        this.gsisdRealQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdRealQty.getId()));
        this.gsisdFactory.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdFactory.getId()));
        this.gsisdOrigin.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdOrigin.getId()));
        this.gsisdDosageForm.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdDosageForm.getId()));
        this.gsisdUnit.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdUnit.getId()));
        this.gsisdFormat.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdFormat.getId()));
        this.gsisdApprovalNum.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdApprovalNum.getId()));
        this.gsisdStockStatus.setCellValueFactory((Callback)new PropertyValueFactory(this.gsisdStockStatus.getId()));
    }

    private List<Integer> getSelectIndex() {
        ArrayList<Integer> ids = new ArrayList<Integer>();
        if (!CollectionUtils.isEmpty(this.incomeList)) {
            for (IncomeStatementOutData i : this.incomeList) {
                if (!i.getCheckBox().isSelected().booleanValue()) continue;
                ids.add(i.getIndex());
            }
        }
        return ids;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishRemark() {
        return this.gsishRemark;
    }

    public Button getQueryBtn() {
        return this.queryBtn;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishTableType() {
        return this.gsishTableType;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdRetailPrice() {
        return this.gsisdRetailPrice;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdDosageForm() {
        return this.gsisdDosageForm;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishTotalQty() {
        return this.gsishTotalQty;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdBatch() {
        return this.gsisdBatch;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdFormat() {
        return this.gsisdFormat;
    }

    public Button getAddBtn() {
        return this.addBtn;
    }

    public Button getSureBtn() {
        return this.sureBtn;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdApprovalNum() {
        return this.gsisdApprovalNum;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishVoucherId() {
        return this.gsishVoucherId;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishExamineDate() {
        return this.gsishExamineDate;
    }

    public ChoiceBox<GsmchType> getIsType() {
        return this.isType;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishStatus() {
        return this.gsishStatus;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishDate() {
        return this.gsishDate;
    }

    public TextField getVoucherId() {
        return this.voucherId;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdBatchNo() {
        return this.gsisdBatchNo;
    }

    public Pane getModelPane() {
        return this.modelPane;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishTotalAmt() {
        return this.gsishTotalAmt;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdProName() {
        return this.gsisdProName;
    }

    public Pane getQueryPane() {
        return this.queryPane;
    }

    public DatePicker getCreateDate() {
        return this.createDate;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdRealQty() {
        return this.gsisdRealQty;
    }

    public TextField getBatchNo() {
        return this.batchNo;
    }

    public TableView<IncomeStatementOutData> getSortInfo() {
        return this.sortInfo;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdOrigin() {
        return this.gsisdOrigin;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishIsType() {
        return this.gsishIsType;
    }

    public TableColumn<IncomeStatementOutData, String> getGsishExamineEmp() {
        return this.gsishExamineEmp;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdValidUntil() {
        return this.gsisdValidUntil;
    }

    public TableColumn<IncomeStatementOutData, String> getIndex() {
        return this.index;
    }

    public TableView<IncomeStatementDetailOutData> getDetailInfo() {
        return this.detailInfo;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdProId() {
        return this.gsisdProId;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getIndexDetail() {
        return this.indexDetail;
    }

    public Button getAuditBtn() {
        return this.auditBtn;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdStockStatus() {
        return this.gsisdStockStatus;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdFactory() {
        return this.gsisdFactory;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdUnit() {
        return this.gsisdUnit;
    }

    public TextField getProId() {
        return this.proId;
    }

    public ChoiceBox<GetUserOutData> getExamineEmp() {
        return this.examineEmp;
    }

    public TableColumn<IncomeStatementOutData, CheckBox> getCheckBox() {
        return this.checkBox;
    }

    public DatePicker getFinishDate() {
        return this.finishDate;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdIsCause() {
        return this.gsisdIsCause;
    }

    public TableColumn<IncomeStatementDetailOutData, String> getGsisdQty() {
        return this.gsisdQty;
    }

    public ChoiceBox<GsmchStatus> getStatus() {
        return this.status;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public Double getLayoutYSou() {
        return this.layoutYSou;
    }

    public String getIsVoucherId() {
        return this.isVoucherId;
    }

    public ObservableList<IncomeStatementOutData> getIncomeList() {
        return this.incomeList;
    }

    public ObservableList<IncomeStatementDetailOutData> getIncomeDetailList() {
        return this.incomeDetailList;
    }

    public List<GetUserOutData> getOutDataList() {
        return this.outDataList;
    }

    public AddIncomeStatementController getAddIncomeStatementController() {
        return this.addIncomeStatementController;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setGsishRemark(TableColumn<IncomeStatementOutData, String> gsishRemark) {
        this.gsishRemark = gsishRemark;
    }

    public void setQueryBtn(Button queryBtn) {
        this.queryBtn = queryBtn;
    }

    public void setGsishTableType(TableColumn<IncomeStatementOutData, String> gsishTableType) {
        this.gsishTableType = gsishTableType;
    }

    public void setGsisdRetailPrice(TableColumn<IncomeStatementDetailOutData, String> gsisdRetailPrice) {
        this.gsisdRetailPrice = gsisdRetailPrice;
    }

    public void setGsisdDosageForm(TableColumn<IncomeStatementDetailOutData, String> gsisdDosageForm) {
        this.gsisdDosageForm = gsisdDosageForm;
    }

    public void setGsishTotalQty(TableColumn<IncomeStatementOutData, String> gsishTotalQty) {
        this.gsishTotalQty = gsishTotalQty;
    }

    public void setGsisdBatch(TableColumn<IncomeStatementDetailOutData, String> gsisdBatch) {
        this.gsisdBatch = gsisdBatch;
    }

    public void setGsisdFormat(TableColumn<IncomeStatementDetailOutData, String> gsisdFormat) {
        this.gsisdFormat = gsisdFormat;
    }

    public void setAddBtn(Button addBtn) {
        this.addBtn = addBtn;
    }

    public void setSureBtn(Button sureBtn) {
        this.sureBtn = sureBtn;
    }

    public void setGsisdApprovalNum(TableColumn<IncomeStatementDetailOutData, String> gsisdApprovalNum) {
        this.gsisdApprovalNum = gsisdApprovalNum;
    }

    public void setGsishVoucherId(TableColumn<IncomeStatementOutData, String> gsishVoucherId) {
        this.gsishVoucherId = gsishVoucherId;
    }

    public void setGsishExamineDate(TableColumn<IncomeStatementOutData, String> gsishExamineDate) {
        this.gsishExamineDate = gsishExamineDate;
    }

    public void setIsType(ChoiceBox<GsmchType> isType) {
        this.isType = isType;
    }

    public void setGsishStatus(TableColumn<IncomeStatementOutData, String> gsishStatus) {
        this.gsishStatus = gsishStatus;
    }

    public void setGsishDate(TableColumn<IncomeStatementOutData, String> gsishDate) {
        this.gsishDate = gsishDate;
    }

    public void setVoucherId(TextField voucherId) {
        this.voucherId = voucherId;
    }

    public void setGsisdBatchNo(TableColumn<IncomeStatementDetailOutData, String> gsisdBatchNo) {
        this.gsisdBatchNo = gsisdBatchNo;
    }

    public void setModelPane(Pane modelPane) {
        this.modelPane = modelPane;
    }

    public void setGsishTotalAmt(TableColumn<IncomeStatementOutData, String> gsishTotalAmt) {
        this.gsishTotalAmt = gsishTotalAmt;
    }

    public void setGsisdProName(TableColumn<IncomeStatementDetailOutData, String> gsisdProName) {
        this.gsisdProName = gsisdProName;
    }

    public void setQueryPane(Pane queryPane) {
        this.queryPane = queryPane;
    }

    public void setCreateDate(DatePicker createDate) {
        this.createDate = createDate;
    }

    public void setGsisdRealQty(TableColumn<IncomeStatementDetailOutData, String> gsisdRealQty) {
        this.gsisdRealQty = gsisdRealQty;
    }

    public void setBatchNo(TextField batchNo) {
        this.batchNo = batchNo;
    }

    public void setSortInfo(TableView<IncomeStatementOutData> sortInfo) {
        this.sortInfo = sortInfo;
    }

    public void setGsisdOrigin(TableColumn<IncomeStatementDetailOutData, String> gsisdOrigin) {
        this.gsisdOrigin = gsisdOrigin;
    }

    public void setGsishIsType(TableColumn<IncomeStatementOutData, String> gsishIsType) {
        this.gsishIsType = gsishIsType;
    }

    public void setGsishExamineEmp(TableColumn<IncomeStatementOutData, String> gsishExamineEmp) {
        this.gsishExamineEmp = gsishExamineEmp;
    }

    public void setGsisdValidUntil(TableColumn<IncomeStatementDetailOutData, String> gsisdValidUntil) {
        this.gsisdValidUntil = gsisdValidUntil;
    }

    public void setIndex(TableColumn<IncomeStatementOutData, String> index) {
        this.index = index;
    }

    public void setDetailInfo(TableView<IncomeStatementDetailOutData> detailInfo) {
        this.detailInfo = detailInfo;
    }

    public void setGsisdProId(TableColumn<IncomeStatementDetailOutData, String> gsisdProId) {
        this.gsisdProId = gsisdProId;
    }

    public void setIndexDetail(TableColumn<IncomeStatementDetailOutData, String> indexDetail) {
        this.indexDetail = indexDetail;
    }

    public void setAuditBtn(Button auditBtn) {
        this.auditBtn = auditBtn;
    }

    public void setGsisdStockStatus(TableColumn<IncomeStatementDetailOutData, String> gsisdStockStatus) {
        this.gsisdStockStatus = gsisdStockStatus;
    }

    public void setGsisdFactory(TableColumn<IncomeStatementDetailOutData, String> gsisdFactory) {
        this.gsisdFactory = gsisdFactory;
    }

    public void setGsisdUnit(TableColumn<IncomeStatementDetailOutData, String> gsisdUnit) {
        this.gsisdUnit = gsisdUnit;
    }

    public void setProId(TextField proId) {
        this.proId = proId;
    }

    public void setExamineEmp(ChoiceBox<GetUserOutData> examineEmp) {
        this.examineEmp = examineEmp;
    }

    public void setCheckBox(TableColumn<IncomeStatementOutData, CheckBox> checkBox) {
        this.checkBox = checkBox;
    }

    public void setFinishDate(DatePicker finishDate) {
        this.finishDate = finishDate;
    }

    public void setGsisdIsCause(TableColumn<IncomeStatementDetailOutData, String> gsisdIsCause) {
        this.gsisdIsCause = gsisdIsCause;
    }

    public void setGsisdQty(TableColumn<IncomeStatementDetailOutData, String> gsisdQty) {
        this.gsisdQty = gsisdQty;
    }

    public void setStatus(ChoiceBox<GsmchStatus> status) {
        this.status = status;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setLayoutYSou(Double layoutYSou) {
        this.layoutYSou = layoutYSou;
    }

    public void setIsVoucherId(String isVoucherId) {
        this.isVoucherId = isVoucherId;
    }

    public void setIncomeList(ObservableList<IncomeStatementOutData> incomeList) {
        this.incomeList = incomeList;
    }

    public void setIncomeDetailList(ObservableList<IncomeStatementDetailOutData> incomeDetailList) {
        this.incomeDetailList = incomeDetailList;
    }

    public void setOutDataList(List<GetUserOutData> outDataList) {
        this.outDataList = outDataList;
    }

    public void setAddIncomeStatementController(AddIncomeStatementController addIncomeStatementController) {
        this.addIncomeStatementController = addIncomeStatementController;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof IncomeStatementController)) {
            return false;
        }
        IncomeStatementController other = (IncomeStatementController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishRemark = this.getGsishRemark();
        TableColumn<IncomeStatementOutData, String> other$gsishRemark = other.getGsishRemark();
        if (this$gsishRemark == null ? other$gsishRemark != null : !this$gsishRemark.equals(other$gsishRemark)) {
            return false;
        }
        Button this$queryBtn = this.getQueryBtn();
        Button other$queryBtn = other.getQueryBtn();
        if (this$queryBtn == null ? other$queryBtn != null : !this$queryBtn.equals(other$queryBtn)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishTableType = this.getGsishTableType();
        TableColumn<IncomeStatementOutData, String> other$gsishTableType = other.getGsishTableType();
        if (this$gsishTableType == null ? other$gsishTableType != null : !this$gsishTableType.equals(other$gsishTableType)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdRetailPrice = this.getGsisdRetailPrice();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdRetailPrice = other.getGsisdRetailPrice();
        if (this$gsisdRetailPrice == null ? other$gsisdRetailPrice != null : !this$gsisdRetailPrice.equals(other$gsisdRetailPrice)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdDosageForm = this.getGsisdDosageForm();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdDosageForm = other.getGsisdDosageForm();
        if (this$gsisdDosageForm == null ? other$gsisdDosageForm != null : !this$gsisdDosageForm.equals(other$gsisdDosageForm)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishTotalQty = this.getGsishTotalQty();
        TableColumn<IncomeStatementOutData, String> other$gsishTotalQty = other.getGsishTotalQty();
        if (this$gsishTotalQty == null ? other$gsishTotalQty != null : !this$gsishTotalQty.equals(other$gsishTotalQty)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdBatch = this.getGsisdBatch();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdBatch = other.getGsisdBatch();
        if (this$gsisdBatch == null ? other$gsisdBatch != null : !this$gsisdBatch.equals(other$gsisdBatch)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdFormat = this.getGsisdFormat();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdFormat = other.getGsisdFormat();
        if (this$gsisdFormat == null ? other$gsisdFormat != null : !this$gsisdFormat.equals(other$gsisdFormat)) {
            return false;
        }
        Button this$addBtn = this.getAddBtn();
        Button other$addBtn = other.getAddBtn();
        if (this$addBtn == null ? other$addBtn != null : !this$addBtn.equals(other$addBtn)) {
            return false;
        }
        Button this$sureBtn = this.getSureBtn();
        Button other$sureBtn = other.getSureBtn();
        if (this$sureBtn == null ? other$sureBtn != null : !this$sureBtn.equals(other$sureBtn)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdApprovalNum = this.getGsisdApprovalNum();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdApprovalNum = other.getGsisdApprovalNum();
        if (this$gsisdApprovalNum == null ? other$gsisdApprovalNum != null : !this$gsisdApprovalNum.equals(other$gsisdApprovalNum)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishVoucherId = this.getGsishVoucherId();
        TableColumn<IncomeStatementOutData, String> other$gsishVoucherId = other.getGsishVoucherId();
        if (this$gsishVoucherId == null ? other$gsishVoucherId != null : !this$gsishVoucherId.equals(other$gsishVoucherId)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishExamineDate = this.getGsishExamineDate();
        TableColumn<IncomeStatementOutData, String> other$gsishExamineDate = other.getGsishExamineDate();
        if (this$gsishExamineDate == null ? other$gsishExamineDate != null : !this$gsishExamineDate.equals(other$gsishExamineDate)) {
            return false;
        }
        ChoiceBox<GsmchType> this$isType = this.getIsType();
        ChoiceBox<GsmchType> other$isType = other.getIsType();
        if (this$isType == null ? other$isType != null : !this$isType.equals(other$isType)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishStatus = this.getGsishStatus();
        TableColumn<IncomeStatementOutData, String> other$gsishStatus = other.getGsishStatus();
        if (this$gsishStatus == null ? other$gsishStatus != null : !this$gsishStatus.equals(other$gsishStatus)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishDate = this.getGsishDate();
        TableColumn<IncomeStatementOutData, String> other$gsishDate = other.getGsishDate();
        if (this$gsishDate == null ? other$gsishDate != null : !this$gsishDate.equals(other$gsishDate)) {
            return false;
        }
        TextField this$voucherId = this.getVoucherId();
        TextField other$voucherId = other.getVoucherId();
        if (this$voucherId == null ? other$voucherId != null : !this$voucherId.equals(other$voucherId)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdBatchNo = this.getGsisdBatchNo();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdBatchNo = other.getGsisdBatchNo();
        if (this$gsisdBatchNo == null ? other$gsisdBatchNo != null : !this$gsisdBatchNo.equals(other$gsisdBatchNo)) {
            return false;
        }
        Pane this$modelPane = this.getModelPane();
        Pane other$modelPane = other.getModelPane();
        if (this$modelPane == null ? other$modelPane != null : !this$modelPane.equals(other$modelPane)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishTotalAmt = this.getGsishTotalAmt();
        TableColumn<IncomeStatementOutData, String> other$gsishTotalAmt = other.getGsishTotalAmt();
        if (this$gsishTotalAmt == null ? other$gsishTotalAmt != null : !this$gsishTotalAmt.equals(other$gsishTotalAmt)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdProName = this.getGsisdProName();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdProName = other.getGsisdProName();
        if (this$gsisdProName == null ? other$gsisdProName != null : !this$gsisdProName.equals(other$gsisdProName)) {
            return false;
        }
        Pane this$queryPane = this.getQueryPane();
        Pane other$queryPane = other.getQueryPane();
        if (this$queryPane == null ? other$queryPane != null : !this$queryPane.equals(other$queryPane)) {
            return false;
        }
        DatePicker this$createDate = this.getCreateDate();
        DatePicker other$createDate = other.getCreateDate();
        if (this$createDate == null ? other$createDate != null : !this$createDate.equals(other$createDate)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdRealQty = this.getGsisdRealQty();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdRealQty = other.getGsisdRealQty();
        if (this$gsisdRealQty == null ? other$gsisdRealQty != null : !this$gsisdRealQty.equals(other$gsisdRealQty)) {
            return false;
        }
        TextField this$batchNo = this.getBatchNo();
        TextField other$batchNo = other.getBatchNo();
        if (this$batchNo == null ? other$batchNo != null : !this$batchNo.equals(other$batchNo)) {
            return false;
        }
        TableView<IncomeStatementOutData> this$sortInfo = this.getSortInfo();
        TableView<IncomeStatementOutData> other$sortInfo = other.getSortInfo();
        if (this$sortInfo == null ? other$sortInfo != null : !this$sortInfo.equals(other$sortInfo)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdOrigin = this.getGsisdOrigin();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdOrigin = other.getGsisdOrigin();
        if (this$gsisdOrigin == null ? other$gsisdOrigin != null : !this$gsisdOrigin.equals(other$gsisdOrigin)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishIsType = this.getGsishIsType();
        TableColumn<IncomeStatementOutData, String> other$gsishIsType = other.getGsishIsType();
        if (this$gsishIsType == null ? other$gsishIsType != null : !this$gsishIsType.equals(other$gsishIsType)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$gsishExamineEmp = this.getGsishExamineEmp();
        TableColumn<IncomeStatementOutData, String> other$gsishExamineEmp = other.getGsishExamineEmp();
        if (this$gsishExamineEmp == null ? other$gsishExamineEmp != null : !this$gsishExamineEmp.equals(other$gsishExamineEmp)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdValidUntil = this.getGsisdValidUntil();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdValidUntil = other.getGsisdValidUntil();
        if (this$gsisdValidUntil == null ? other$gsisdValidUntil != null : !this$gsisdValidUntil.equals(other$gsisdValidUntil)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, String> this$index = this.getIndex();
        TableColumn<IncomeStatementOutData, String> other$index = other.getIndex();
        if (this$index == null ? other$index != null : !this$index.equals(other$index)) {
            return false;
        }
        TableView<IncomeStatementDetailOutData> this$detailInfo = this.getDetailInfo();
        TableView<IncomeStatementDetailOutData> other$detailInfo = other.getDetailInfo();
        if (this$detailInfo == null ? other$detailInfo != null : !this$detailInfo.equals(other$detailInfo)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdProId = this.getGsisdProId();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdProId = other.getGsisdProId();
        if (this$gsisdProId == null ? other$gsisdProId != null : !this$gsisdProId.equals(other$gsisdProId)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$indexDetail = this.getIndexDetail();
        TableColumn<IncomeStatementDetailOutData, String> other$indexDetail = other.getIndexDetail();
        if (this$indexDetail == null ? other$indexDetail != null : !this$indexDetail.equals(other$indexDetail)) {
            return false;
        }
        Button this$auditBtn = this.getAuditBtn();
        Button other$auditBtn = other.getAuditBtn();
        if (this$auditBtn == null ? other$auditBtn != null : !this$auditBtn.equals(other$auditBtn)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdStockStatus = this.getGsisdStockStatus();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdStockStatus = other.getGsisdStockStatus();
        if (this$gsisdStockStatus == null ? other$gsisdStockStatus != null : !this$gsisdStockStatus.equals(other$gsisdStockStatus)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdFactory = this.getGsisdFactory();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdFactory = other.getGsisdFactory();
        if (this$gsisdFactory == null ? other$gsisdFactory != null : !this$gsisdFactory.equals(other$gsisdFactory)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdUnit = this.getGsisdUnit();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdUnit = other.getGsisdUnit();
        if (this$gsisdUnit == null ? other$gsisdUnit != null : !this$gsisdUnit.equals(other$gsisdUnit)) {
            return false;
        }
        TextField this$proId = this.getProId();
        TextField other$proId = other.getProId();
        if (this$proId == null ? other$proId != null : !this$proId.equals(other$proId)) {
            return false;
        }
        ChoiceBox<GetUserOutData> this$examineEmp = this.getExamineEmp();
        ChoiceBox<GetUserOutData> other$examineEmp = other.getExamineEmp();
        if (this$examineEmp == null ? other$examineEmp != null : !this$examineEmp.equals(other$examineEmp)) {
            return false;
        }
        TableColumn<IncomeStatementOutData, CheckBox> this$checkBox = this.getCheckBox();
        TableColumn<IncomeStatementOutData, CheckBox> other$checkBox = other.getCheckBox();
        if (this$checkBox == null ? other$checkBox != null : !this$checkBox.equals(other$checkBox)) {
            return false;
        }
        DatePicker this$finishDate = this.getFinishDate();
        DatePicker other$finishDate = other.getFinishDate();
        if (this$finishDate == null ? other$finishDate != null : !this$finishDate.equals(other$finishDate)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdIsCause = this.getGsisdIsCause();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdIsCause = other.getGsisdIsCause();
        if (this$gsisdIsCause == null ? other$gsisdIsCause != null : !this$gsisdIsCause.equals(other$gsisdIsCause)) {
            return false;
        }
        TableColumn<IncomeStatementDetailOutData, String> this$gsisdQty = this.getGsisdQty();
        TableColumn<IncomeStatementDetailOutData, String> other$gsisdQty = other.getGsisdQty();
        if (this$gsisdQty == null ? other$gsisdQty != null : !this$gsisdQty.equals(other$gsisdQty)) {
            return false;
        }
        ChoiceBox<GsmchStatus> this$status = this.getStatus();
        ChoiceBox<GsmchStatus> other$status = other.getStatus();
        if (this$status == null ? other$status != null : !this$status.equals(other$status)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        Double this$layoutYSou = this.getLayoutYSou();
        Double other$layoutYSou = other.getLayoutYSou();
        if (this$layoutYSou == null ? other$layoutYSou != null : !(this$layoutYSou).equals(other$layoutYSou)) {
            return false;
        }
        String this$isVoucherId = this.getIsVoucherId();
        String other$isVoucherId = other.getIsVoucherId();
        if (this$isVoucherId == null ? other$isVoucherId != null : !this$isVoucherId.equals(other$isVoucherId)) {
            return false;
        }
        ObservableList<IncomeStatementOutData> this$incomeList = this.getIncomeList();
        ObservableList<IncomeStatementOutData> other$incomeList = other.getIncomeList();
        if (this$incomeList == null ? other$incomeList != null : !this$incomeList.equals(other$incomeList)) {
            return false;
        }
        ObservableList<IncomeStatementDetailOutData> this$incomeDetailList = this.getIncomeDetailList();
        ObservableList<IncomeStatementDetailOutData> other$incomeDetailList = other.getIncomeDetailList();
        if (this$incomeDetailList == null ? other$incomeDetailList != null : !this$incomeDetailList.equals(other$incomeDetailList)) {
            return false;
        }
        List<GetUserOutData> this$outDataList = this.getOutDataList();
        List<GetUserOutData> other$outDataList = other.getOutDataList();
        if (this$outDataList == null ? other$outDataList != null : !(this$outDataList).equals(other$outDataList)) {
            return false;
        }
        AddIncomeStatementController this$addIncomeStatementController = this.getAddIncomeStatementController();
        AddIncomeStatementController other$addIncomeStatementController = other.getAddIncomeStatementController();
        if (this$addIncomeStatementController == null ? other$addIncomeStatementController != null : !(this$addIncomeStatementController).equals(other$addIncomeStatementController)) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        return !(this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController));
    }

    protected boolean canEqual(Object other) {
        return other instanceof IncomeStatementController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishRemark = this.getGsishRemark();
        result = result * 59 + ($gsishRemark == null ? 43 : $gsishRemark.hashCode());
        Button $queryBtn = this.getQueryBtn();
        result = result * 59 + ($queryBtn == null ? 43 : $queryBtn.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishTableType = this.getGsishTableType();
        result = result * 59 + ($gsishTableType == null ? 43 : $gsishTableType.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdRetailPrice = this.getGsisdRetailPrice();
        result = result * 59 + ($gsisdRetailPrice == null ? 43 : $gsisdRetailPrice.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdDosageForm = this.getGsisdDosageForm();
        result = result * 59 + ($gsisdDosageForm == null ? 43 : $gsisdDosageForm.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishTotalQty = this.getGsishTotalQty();
        result = result * 59 + ($gsishTotalQty == null ? 43 : $gsishTotalQty.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdBatch = this.getGsisdBatch();
        result = result * 59 + ($gsisdBatch == null ? 43 : $gsisdBatch.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdFormat = this.getGsisdFormat();
        result = result * 59 + ($gsisdFormat == null ? 43 : $gsisdFormat.hashCode());
        Button $addBtn = this.getAddBtn();
        result = result * 59 + ($addBtn == null ? 43 : $addBtn.hashCode());
        Button $sureBtn = this.getSureBtn();
        result = result * 59 + ($sureBtn == null ? 43 : $sureBtn.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdApprovalNum = this.getGsisdApprovalNum();
        result = result * 59 + ($gsisdApprovalNum == null ? 43 : $gsisdApprovalNum.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishVoucherId = this.getGsishVoucherId();
        result = result * 59 + ($gsishVoucherId == null ? 43 : $gsishVoucherId.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishExamineDate = this.getGsishExamineDate();
        result = result * 59 + ($gsishExamineDate == null ? 43 : $gsishExamineDate.hashCode());
        ChoiceBox<GsmchType> $isType = this.getIsType();
        result = result * 59 + ($isType == null ? 43 : $isType.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishStatus = this.getGsishStatus();
        result = result * 59 + ($gsishStatus == null ? 43 : $gsishStatus.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishDate = this.getGsishDate();
        result = result * 59 + ($gsishDate == null ? 43 : $gsishDate.hashCode());
        TextField $voucherId = this.getVoucherId();
        result = result * 59 + ($voucherId == null ? 43 : $voucherId.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdBatchNo = this.getGsisdBatchNo();
        result = result * 59 + ($gsisdBatchNo == null ? 43 : $gsisdBatchNo.hashCode());
        Pane $modelPane = this.getModelPane();
        result = result * 59 + ($modelPane == null ? 43 : $modelPane.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishTotalAmt = this.getGsishTotalAmt();
        result = result * 59 + ($gsishTotalAmt == null ? 43 : $gsishTotalAmt.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdProName = this.getGsisdProName();
        result = result * 59 + ($gsisdProName == null ? 43 : $gsisdProName.hashCode());
        Pane $queryPane = this.getQueryPane();
        result = result * 59 + ($queryPane == null ? 43 : $queryPane.hashCode());
        DatePicker $createDate = this.getCreateDate();
        result = result * 59 + ($createDate == null ? 43 : $createDate.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdRealQty = this.getGsisdRealQty();
        result = result * 59 + ($gsisdRealQty == null ? 43 : $gsisdRealQty.hashCode());
        TextField $batchNo = this.getBatchNo();
        result = result * 59 + ($batchNo == null ? 43 : $batchNo.hashCode());
        TableView<IncomeStatementOutData> $sortInfo = this.getSortInfo();
        result = result * 59 + ($sortInfo == null ? 43 : $sortInfo.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdOrigin = this.getGsisdOrigin();
        result = result * 59 + ($gsisdOrigin == null ? 43 : $gsisdOrigin.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishIsType = this.getGsishIsType();
        result = result * 59 + ($gsishIsType == null ? 43 : $gsishIsType.hashCode());
        TableColumn<IncomeStatementOutData, String> $gsishExamineEmp = this.getGsishExamineEmp();
        result = result * 59 + ($gsishExamineEmp == null ? 43 : $gsishExamineEmp.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdValidUntil = this.getGsisdValidUntil();
        result = result * 59 + ($gsisdValidUntil == null ? 43 : $gsisdValidUntil.hashCode());
        TableColumn<IncomeStatementOutData, String> $index = this.getIndex();
        result = result * 59 + ($index == null ? 43 : $index.hashCode());
        TableView<IncomeStatementDetailOutData> $detailInfo = this.getDetailInfo();
        result = result * 59 + ($detailInfo == null ? 43 : $detailInfo.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdProId = this.getGsisdProId();
        result = result * 59 + ($gsisdProId == null ? 43 : $gsisdProId.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $indexDetail = this.getIndexDetail();
        result = result * 59 + ($indexDetail == null ? 43 : $indexDetail.hashCode());
        Button $auditBtn = this.getAuditBtn();
        result = result * 59 + ($auditBtn == null ? 43 : $auditBtn.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdStockStatus = this.getGsisdStockStatus();
        result = result * 59 + ($gsisdStockStatus == null ? 43 : $gsisdStockStatus.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdFactory = this.getGsisdFactory();
        result = result * 59 + ($gsisdFactory == null ? 43 : $gsisdFactory.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdUnit = this.getGsisdUnit();
        result = result * 59 + ($gsisdUnit == null ? 43 : $gsisdUnit.hashCode());
        TextField $proId = this.getProId();
        result = result * 59 + ($proId == null ? 43 : $proId.hashCode());
        ChoiceBox<GetUserOutData> $examineEmp = this.getExamineEmp();
        result = result * 59 + ($examineEmp == null ? 43 : $examineEmp.hashCode());
        TableColumn<IncomeStatementOutData, CheckBox> $checkBox = this.getCheckBox();
        result = result * 59 + ($checkBox == null ? 43 : $checkBox.hashCode());
        DatePicker $finishDate = this.getFinishDate();
        result = result * 59 + ($finishDate == null ? 43 : $finishDate.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdIsCause = this.getGsisdIsCause();
        result = result * 59 + ($gsisdIsCause == null ? 43 : $gsisdIsCause.hashCode());
        TableColumn<IncomeStatementDetailOutData, String> $gsisdQty = this.getGsisdQty();
        result = result * 59 + ($gsisdQty == null ? 43 : $gsisdQty.hashCode());
        ChoiceBox<GsmchStatus> $status = this.getStatus();
        result = result * 59 + ($status == null ? 43 : $status.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        Double $layoutYSou = this.getLayoutYSou();
        result = result * 59 + ($layoutYSou == null ? 43 : ($layoutYSou).hashCode());
        String $isVoucherId = this.getIsVoucherId();
        result = result * 59 + ($isVoucherId == null ? 43 : $isVoucherId.hashCode());
        ObservableList<IncomeStatementOutData> $incomeList = this.getIncomeList();
        result = result * 59 + ($incomeList == null ? 43 : $incomeList.hashCode());
        ObservableList<IncomeStatementDetailOutData> $incomeDetailList = this.getIncomeDetailList();
        result = result * 59 + ($incomeDetailList == null ? 43 : $incomeDetailList.hashCode());
        List<GetUserOutData> $outDataList = this.getOutDataList();
        result = result * 59 + ($outDataList == null ? 43 : ($outDataList).hashCode());
        AddIncomeStatementController $addIncomeStatementController = this.getAddIncomeStatementController();
        result = result * 59 + ($addIncomeStatementController == null ? 43 : ($addIncomeStatementController).hashCode());
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        return result;
    }

    public String toString() {
        return "IncomeStatementController(vBox=" + this.getVBox() + ", gsishRemark=" + this.getGsishRemark() + ", queryBtn=" + this.getQueryBtn() + ", gsishTableType=" + this.getGsishTableType() + ", gsisdRetailPrice=" + this.getGsisdRetailPrice() + ", gsisdDosageForm=" + this.getGsisdDosageForm() + ", gsishTotalQty=" + this.getGsishTotalQty() + ", gsisdBatch=" + this.getGsisdBatch() + ", gsisdFormat=" + this.getGsisdFormat() + ", addBtn=" + this.getAddBtn() + ", sureBtn=" + this.getSureBtn() + ", gsisdApprovalNum=" + this.getGsisdApprovalNum() + ", gsishVoucherId=" + this.getGsishVoucherId() + ", gsishExamineDate=" + this.getGsishExamineDate() + ", isType=" + this.getIsType() + ", gsishStatus=" + this.getGsishStatus() + ", gsishDate=" + this.getGsishDate() + ", voucherId=" + this.getVoucherId() + ", gsisdBatchNo=" + this.getGsisdBatchNo() + ", modelPane=" + this.getModelPane() + ", gsishTotalAmt=" + this.getGsishTotalAmt() + ", gsisdProName=" + this.getGsisdProName() + ", queryPane=" + this.getQueryPane() + ", createDate=" + this.getCreateDate() + ", gsisdRealQty=" + this.getGsisdRealQty() + ", batchNo=" + this.getBatchNo() + ", sortInfo=" + this.getSortInfo() + ", gsisdOrigin=" + this.getGsisdOrigin() + ", gsishIsType=" + this.getGsishIsType() + ", gsishExamineEmp=" + this.getGsishExamineEmp() + ", gsisdValidUntil=" + this.getGsisdValidUntil() + ", index=" + this.getIndex() + ", detailInfo=" + this.getDetailInfo() + ", gsisdProId=" + this.getGsisdProId() + ", indexDetail=" + this.getIndexDetail() + ", auditBtn=" + this.getAuditBtn() + ", gsisdStockStatus=" + this.getGsisdStockStatus() + ", gsisdFactory=" + this.getGsisdFactory() + ", gsisdUnit=" + this.getGsisdUnit() + ", proId=" + this.getProId() + ", examineEmp=" + this.getExamineEmp() + ", checkBox=" + this.getCheckBox() + ", finishDate=" + this.getFinishDate() + ", gsisdIsCause=" + this.getGsisdIsCause() + ", gsisdQty=" + this.getGsisdQty() + ", status=" + this.getStatus() + ", scrollPane=" + this.getScrollPane() + ", layoutYSou=" + this.getLayoutYSou() + ", isVoucherId=" + this.getIsVoucherId() + ", incomeList=" + this.getIncomeList() + ", incomeDetailList=" + this.getIncomeDetailList() + ", outDataList=" + this.getOutDataList() + ", addIncomeStatementController=" + this.getAddIncomeStatementController() + ", indexController=" + this.getIndexController() + ")";
    }
}

